let fmt = {
    /**
     * 格式化日期
     * @param {any} date
     * @param {string} [format='yyyy-MM-dd hh:mm:ss']
     * @returns
     */
    date(date, format = 'yyyy-MM-dd hh:mm:ss') {
      if (!date) {
        return date
      } else if (/^\d+$/.test(+date)) {
        // java格式的timestamp
        return fmt.dateFormat(new Date(+date), format)
      } else if (typeof date === 'object' && date.time) {
        // java格式的日期object
        return fmt.dateFormat(new Date(date.time), format)
      } else if ((/date/i).test(date)) {
        // .net格式的timestamp
        return fmt.dateFormat(new Date(date.match(/\d+/)[0]), format)
      } else if (date && typeof date === 'string' && /\.\d$/.test(date)) {
        // mysql字符串格式转化
        return fmt.dateFormat(new Date(date.replace(/\.\d$/, '').replace(/-/g, '/')), format)
      }
      return date
    },
    /**
     * 格式化日期
     * @param {any} date
     * @param {any} format
     * @returns
     */
    dateFormat(date, format) {
      let o = {
        'M+': date.getMonth() + 1, // month
        'd+': date.getDate(), // day
        'h+': date.getHours(), // hour
        'm+': date.getMinutes(), // minute
        's+': date.getSeconds(), // second
        'q+': Math.floor((date.getMonth() + 3) / 3), // quarter
        'S': date.getMilliseconds() // millisecond
      }
      if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
      }
      for (let k in o) {
        if (new RegExp('(' + k + ')').test(format)) {
          format = format.replace(RegExp.$1, RegExp.$1.length === 1 ?
            o[k] :
            ('00' + o[k]).substr(('' + o[k]).length))
        }
      }
      return format
    },
    getTime(string){
        let date = new Date(string)
        let floorDate = Math.floor(date.getTime())
        return floorDate
    },
    /**
     * 计算两个日期的天数差
     * @param sDate1
     * @param sDate2
     */
    dateDiff(sDate1, sDate2){ // sDate1和sDate2是2002-12-18格式
        var aDate,
            oDate1,
            oDate2,
            iDays
        if (sDate1 instanceof Date) {
            sDate1 = fmt.dateFormat(sDate1, 'yyyy-MM-dd')
        }
        if (sDate2 instanceof Date) {
            sDate2 = fmt.dateFormat(sDate2, 'yyyy-MM-dd')
        }
        aDate = sDate1.split('-')
        oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) // 转换为12-18-2002格式
        aDate = sDate2.split('-')
        oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
        iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) // 把相差的毫秒数转换为天数
        return iDays
    },
    //当前时间前后日期
    beforeAfterDate(num,fmtType){
        let date=new Date();
        let milliseconds=date.getTime()+1000*60*60*24*num;
        let newDate= new Date(milliseconds);
        return fmt.date(newDate,fmtType)
    }
}
export default fmt